package com.hongyun.tms.common.dto.tug;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 拖轮信息表
 *
 * @author yuheng
 * @since 1.0.0 2024-06-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class TmsMTugSaveReqDto {

    private Long id;

    @ApiModelProperty(value = "拖轮编号")
    private String tugNo;

    @ApiModelProperty(value = "拖轮名称")
    private String tugName;

    @ApiModelProperty(value = "拖轮状态，0适航1不适航2停修")
    private Integer staus;

    @ApiModelProperty(value = "拖轮类型代码，字典")
    private String tugTypeCode;

    @ApiModelProperty(value = "拖轮类型名称，字典")
    private String tugTypeName;

    @ApiModelProperty(value = "注册港")
    private String registryPort;

    @ApiModelProperty(value = "经营人")
    private String operator;

    @ApiModelProperty(value = "所有人")
    private String owner;

    @ApiModelProperty(value = "建造日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate buildDate;

    @ApiModelProperty(value = "建造厂家")
    private String buildFactory;

    @ApiModelProperty(value = "IMO")
    @Size(max = 15, message = "IMO不能超过15个字符")
    private String imo;

    @ApiModelProperty(value = "呼号")
    private String callNo;

    @ApiModelProperty(value = "船舶识别号")
    private String idNo;

    @ApiModelProperty(value = "船舶登记号")
    private String regNo;

    @ApiModelProperty(value = "总长")
    private BigDecimal tugLength;

    @ApiModelProperty(value = "型宽")
    private BigDecimal tugWidth;

    @ApiModelProperty(value = "型深")
    private BigDecimal tugDepth;

    @ApiModelProperty(value = "主机功率")
    private String power;

    @ApiModelProperty(value = "马力")
    private String horsepower;

    @ApiModelProperty(value = "总吨")
    private BigDecimal totalTon;

    @ApiModelProperty(value = "净吨")
    private BigDecimal netTon;

    @ApiModelProperty(value = "满载吃水")
    private BigDecimal draftFull;

    @ApiModelProperty(value = "空载吃水")
    private BigDecimal draftEmpty;

    @ApiModelProperty(value = "作业港区代码,字典")
    private String portAreaCode;

    @ApiModelProperty(value = "作业港区名称")
    private String portAreaName;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;


    @ApiModelProperty(value = "修改时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "备注")
    @Size(max = 200, message = "备注不能超过200个字符")
    private String remark;
}
